package com.example.mysql.学习笔记.高级.备份.其他日志;

public class 通用查询日志 {
}
/**
 * 3.通用查询日志(general query log)
 * 通用查询日志用来记录用户的所有操作，
 * 包括启动和关闭MySQL服务、所有用户的连接开始时间和截止时间、发给MySQL数据库服务器的所有sQL指令等。
 * 当我们的数据发生异常时，查看通用查询日志,还原操作时的具体场景，可以帮助我们准确定位问题。
 *
 *
 */
/**
 * 发现: 1月1日下午2点，用户使用微信支付完以后，但是由于网络故障,支付中心没有及时收到微信
 * 支付的回调通知，导致当时没有写入数据。1月1日下午2点30，用户又使用支付宝支付，
 * 此时记录更新到支付中心。
 * 1月1日晚上9点，微信的回调通知过来了，但是支付中心已经存在了支付宝的记录,
 * 所以只能覆盖记录了。
 * 由于网络的原因导致了重复支付。至于解决问题的方案就很多了，这里省略。
 * 可以看到通用查询日志可以帮助我们了解操作发生的具体时间和操作的细节，对找出异常发生的原因极其关键。
 *
 */
/**
 * SHOW VARIABLES LIKE %general%';//查看通用查询日志的状态
 * general_lag        默认OFF(关闭)
 * general_log.file    日志存放位置 文件名字是（一般在linux下 是  用户名.log）
 *
 * set global general_log = on;//开启查询日志
 * 只有开启的时候  才会生成 日志文件
 *
 * set global general_log_file = '地址';//开启查询日志
 *
 * 修改my.cnf或者my.ini文件，把[mysqld]组下的 general_1og 值设置为OFF
 * 或者把general_log一项注释掉。
 * 修改保存后，再重启MySQL服务，即可永久生效。
 * set global general_log = OFF;//关闭查询日志   暂时生效
 *
 *
 */
/**
 * 3.6删除\刷新日志
 * 如果数据的使用非常频繁，那么通用查询日志会占用服务器非常大的磁盘空间。
 * 数据管理员可以删除很长时间之前的查询日志，以保证MySQL服务器上的硬盘空间。
 *
 * 直接用 linux 命令删除文件
 *
 *
 */
